In the past, large-scale computing projects were limited to individuals and enterprises that owned large physical data centers with towering racks of computers. Now, distributed computing allows anyone with the resources to buy server space to run as many instances of their preferred computing device as desired, often in the form of virtual machines hosted on compute nodes. In many cases, compute nodes may be part of high-availability environments that are designed to maintain as much uptime as possible. High-availability environments may be important for a variety of use cases, such as financial services that cannot afford to miss even thirty seconds of stock trading or customer-facing applications that will trigger dozens or hundreds of customer support calls if the system goes down. One way of helping ensure that a high-availability environment suffers minimal downtime is to create as much redundancy as possible. Every virtual machine may have snapshots taken on a regular basis that can be used to create a duplicate virtual machine if necessary.
Unfortunately, traditional systems for making snapshots available may not be instantaneous. Snapshot data may be stored on a data node, separate from the compute node that hosts the virtual machine being snapshotted, meaning that network latency can slow down the availability of a snapshot. The instant disclosure, therefore, identifies and addresses a need for systems and methods for making snapshots available.